// 导入框架路由工具
import { useRoute } from "vue-router"; // Vue Router
import { getCurrentInstance } from "vue";

// 跨端获取路由参数的工具函数
const getRouteParams = () => {
  // H5/PC 端使用 vue-router
  if (process.env.VUE_APP_PLATFORM === "h5") {
    const route = useRoute();
    return {
      params: route.params,
      query: route.query,
    };
  }

  // 小程序端使用框架 API
  if (process.env.VUE_APP_PLATFORM === "mp-weixin") {
    // 使用 uni-app 提供的方法获取路由参数
    try {
      // 获取当前页面栈
      const pages = getCurrentPages();
      if (pages && pages.length > 0) {
        // 获取当前页面实例
        const currentPage = pages[pages.length - 1];
        if (currentPage) {
          // 获取页面参数
          const options = currentPage.options || {};

          // 返回格式化的参数对象，保持与H5端一致的返回结构
          return {
            params: options,
            query: options.query || options,
          };
        }
      }
    } catch (error) {
      console.error("获取小程序路由参数失败:", error);
    }

    // 备用方案：使用 getCurrentInstance
    try {
      const instance = getCurrentInstance();
      if (instance && instance.proxy && instance.proxy.$Route) {
        const route = instance.proxy.$Route;
        return {
          params: route.params || {},
          query: route.query || {},
        };
      }
    } catch (error) {
      console.error("备用方案获取路由参数失败:", error);
    }
  }

  // 默认返回空对象
  return { params: {}, query: {} };
};
export default getRouteParams;
